<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var arr = [ 1, 2, 2, 3, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6 ];
        // var new_arr = [];

        // //遍历原数组  
        // for(var v of arr){
        //     if(new_arr.indexOf(v) == -1){
        //         new_arr.push(v)
        //     }
        // }
        // console.log(new_arr);


        // var arr = [1,2,3,3,2,5,6,8,6,5,7,8,9,10,19,4,4,6];

        // 排序 
        // 判断前后是否一样 如果一样删除一个 

        // arr.sort(function(a,b){return a-b});

        // for(var i=0;i<arr.length;i++){
        //     if(arr[i] == arr[i+1]){
        //         arr.splice(i,1);
        //         i--;
        //     }
        // }

        // console.log(arr);
        

        // var arr = [1,2,3,3,2,5,6,8,6,5,7,8,9,10,19,4,4,6];

        // 数组.indexOf(数据)
        // 数组.indexOf(数据,从开始的位置往右)

        // 方案3  不排序 

        // for(var i=0;i<arr.length;i++){
        //     var res = arr.indexOf(arr[i],i+1);
        //     if(res !== -1){ // 说明有重复的
        //         arr.splice(i,1);
        //         i--
        //     }
        // }

        // console.log(arr)


        // 方案4  
        // set 数据结构  
        // set 叫做集合  es6新增的数据结构  
        // 集合的每个元素一定是唯一的   
        // 数组->集合->数组 

        
        // 如何创建集合 
        // 语法  new Set([数据1,数据2,数据3,数据n]);
        // 长的像数组 

        var arr = [1,2,3,3,2,5,6,8,6,5,7,8,9,10,19,4,4,6];
        console.log('原始数组',arr);
        var myset = new Set(arr);
        console.log(myset);

        // 如何把集合还原成数组  
        // 方案1 
        // Array.from(数据)
        // 作用 把其他类型数据还原成数组  
        // 返回值 还原好的数组  

        // 方案2:
        //  es6新增 展开运算符  把外边的[] {} 去掉 
        // ...



        // var res = Array.from(myset)

        // console.log(res)


        var data = [...myset]
        console.log(data);
    </script>
</body>
</html>